package log

import (
	"autoDeploy/config"
	"autoDeploy/dao/myselfMysql"
	"autoDeploy/models"
	"fmt"
)

var db, _ = myselfMysql.CreateMySQLClient(config.MysqlDb)

//	GetProjectLogs
//
// 描述信息： 根据用户id查询项目信息及项目的推送消息
//
// Param：
//
//	userId ：用户id
//
// Return：
//
//	[]ProjectLog ：若干个{项目，项目推送消息切片}
//	error ：错误消息
func GetProjectLogs(userId uint64) ([]ProjectLog, error) {
	var projectLogs []ProjectLog
	//首先根据userId查询用户团队id切片
	teamIDs, err := models.GetUserTeamIDs(db, userId)
	if err != nil {
		//用户没有加入团队则返回空
		return nil, err
	}
	proIDs, err := models.GetProjectIDsByTeamIDs(db, teamIDs)
	if err != nil {
		return nil, fmt.Errorf("service层 GetProjectLogs 根据团队id查询项目id出错：%s", err.Error())
	}
	var length = len(proIDs)
	for i := 0; i < length; i++ {
		project, err := models.GetProjectByID(db, proIDs[i])
		if err != nil {
			return nil, fmt.Errorf("service层 GetProjectLogs 根据项目id查询项目出错：%s", err.Error())
		}
		proPusherMsg, err := models.ProPusherMsg{}.GetProPusherMsgsByProjectID(db, proIDs[i])
		if err != nil {
			return nil, fmt.Errorf("service层 GetProjectLogs 根据项目id查询推送消息出错：%s", err.Error())
		}
		projectLogs = append(projectLogs, ProjectLog{project, proPusherMsg})
	}
	return projectLogs, nil

}
